#ifndef REPRST_H_
#define REPRST_H_

#include <inttypes.h>
#include <stdio.h>

#define K_BYTES 128
#define K_BITS (K_BYTES * 8)

typedef struct {
	uint64_t digits[(K_BYTES + 3) / 4 * 2];
} big_integer;
#define NUM_DIGITS (sizeof(((big_integer*)0)->digits) / sizeof(((big_integer*)0)->digits[0]))

int set_bit(big_integer *x, int b);
void clear_big_integer(big_integer *x);
void set_number(big_integer *x, uint32_t number);
void print_big_integer(const big_integer *x);
void fprint_big_integer(const big_integer *x, FILE *fp);
int get_bits(const big_integer *x);


typedef struct {
	uint8_t octets[K_BYTES];
} octet_string;

void print_octet_string(const octet_string *s);
void fprint_octet_string(const octet_string *s, FILE *fp);

#endif
